home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Purity
/
Purity #23 (1994-02-10)(Diesel)(DE)[WB].zip
/
Purity #23 (1994-02-10)(Diesel)(DE)[WB].adf
/
Tools
/
ToolTime.p
< prev
next >
Wrap
Text File
|
1994-01-20
|
2KB
|
80 lines
UNIT ToolTime;
{$Projekt MyTools}
INTERFACE
PROCEDURE datum(VAR jahr,monat,tag:LONG);
PROCEDURE uhrzeit(VAR stunden,minuten,sekunden:Byte);
IMPLEMENTATION
{$incl "libraries/dos.h","dos.lib"}
PROCEDURE datum;
VAR zeit:p_DATESTAMP;
xx : p_DateStamp;
PROCEDURE berechne_Jahr(VAR jahr,Tag:LONG);
VAR ende:BOOLEAN;
Jahrlaenge:INTEGER;
BEGIN
ende:=FALSE;
REPEAT
IF (jahr MOD 4 <> 0) THEN Jahrlaenge:=365 { normales Jahr }
ELSE Jahrlaenge:=366; { Schaltjahr }
IF (tag-Jahrlaenge<1) THEN ende:=TRUE
ELSE
BEGIN
tag:=tag-Jahrlaenge;
jahr:=jahr+1;
END;
UNTIL ende;
END;
PROCEDURE berechne_monat_und_tag(VAR jahr,monat,tag:LONG);
TYPE liste=ARRAY[1..12] OF INTEGER;
VAR monate:liste;
ende:BOOLEAN;
BEGIN
monate:=liste(31,28,31,30,31,30,31,31,30,31,30,31);
IF (jahr MOD 4 =0) THEN monate[2]:=29; {Februar im Schaltjahr 29 Tage}
ende:=FALSE;
REPEAT
IF (tag-monate[monat]<1) THEN ende:=TRUE
ELSE BEGIN
tag:=tag-monate[monat];
monat:=monat+1;
END;
UNTIL ende;
END;
BEGIN
xx := _DATESTAMP(zeit);
tag:=zeit^.ds_days+1;
jahr:=1978; { von hier aus wird gezählt }
monat:=1;
berechne_jahr(jahr,tag);
berechne_monat_und_tag(jahr,monat,tag);
END;
PROCEDURE uhrzeit;
VAR zeit:DATESTAMP;
xx : p_DateStamp;
BEGIN
xx := _DATESTAMP(^zeit);
stunden:=zeit.ds_minute DIV 60;
minuten:=zeit.ds_minute MOD 60;
sekunden:=zeit.ds_tick DIV 50;
END;
BEGIN
END.